﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;

public partial class PPage : System.Web.UI.Page
{
    protected override void OnPreRender(EventArgs e)
    {
        UserName.Text = Profile.Name;
        LastName.Text = Profile.LastName;
        DbirdthLabel.Text = Profile.DateBirdth.ToShortDateString();
        ArLabel.Text = Profile.Area;

        VkLabel.Text = Profile.Vk;
        FbLabe.Text = Profile.Facebook;
        TelLabel.Text = Profile.TelNum;
        OthLabel.Text = Profile.OtherInfo;
        MsLabel.Text = Profile.Myspace;
        GpLabel.Text = Profile.GooglePl;
        TwLabel.Text = Profile.Twitter;



        //если пользователь аутентифицирован + является битмейкером + (GET-параметр login отсутсвует или его значение равно имени аутентифицированного битмейкера)
        if (HttpContext.Current.User.Identity.IsAuthenticated && (Request["login"] == null || Request["login"].Equals(HttpContext.Current.User.Identity.Name)))
        {
            ButtonsUnderAvMultiView.ActiveViewIndex = 1;
        }
        //иначе
        else
        {
            ButtonsUnderAvMultiView.ActiveViewIndex = 0;
            //ссылка для отправки почты пользователю, на страницы которого мы сейчас находимся
            SendMesHiperLink.NavigateUrl = "MessageDialog.aspx?whom=" + Request["login"];
        }

        /*
         суть нижележащиего ифа заключается
         в определении того, страницу какого пользователя надо открывать
            - если есть GET-параметр login - открываем страницу согласно парамету
            - если нет GET-параметра и пользователь не битмейкер - пишем, что нет такой страницы
            - если нет параметра и пользователь битмейкер - переходим на страницу этого битмейкера
            - если нет битмейкера с именем из GET-параметра - пишем, что нет такой страницы
         */

        //если перешли по ссылке на перс.  стр. и есть get-параметр login
        if ( Request["login"] != null )
        {
            Util.BeatMaker bm;
            if (new BLL.BeatMakers().GetBM(Request["login"], out bm))
            {
                //загрузка информации пользователя
                LogName.Text = bm.Login;
                UserName.Text = Profile.GetProfile(Request["login"]).Name + " ";
                LastName.Text = Profile.GetProfile(Request["login"]).LastName;

                //загрузка трэклиста
                BLL.Tracks forRep = new BLL.Tracks();
                string author = Request["login"];

                TrackList.DataSource = forRep.GetTracksOfAuthor(author);
                TrackList.DataBind();

                if (TrackListDataPager.TotalRowCount <= TrackListDataPager.MaximumRows)
                    TrackListDataPager.Visible = false;

                if (TrackListDataPager.TotalRowCount == 0)
                    AboutNullMess.Text = "список пуст!";
            }
            else
                LogName.Text = "dfgd - это косяк, Джованни!";
        }
        //если перешли по ссылке на перс. стр. и нет get-параметра login
        else
        {
            //но если пользователь аутентифицирован, он переходит на свою страницу
            if (Request["login"] == null)
            {
                Util.BeatMaker bm;
                if (new BLL.BeatMakers().GetBM(HttpContext.Current.User.Identity.Name, out bm))
                {
                    //загрузка информации пользователя
                    LogName.Text = bm.Login;
                    UserName.Text = Profile.GetProfile(HttpContext.Current.User.Identity.Name).Name + " ";
                    LastName.Text = Profile.GetProfile(HttpContext.Current.User.Identity.Name).LastName;

                    //загрузка трэклиста
                    BLL.Tracks forRep = new BLL.Tracks();
                    string author = HttpContext.Current.User.Identity.Name;

                    TrackList.DataSource = forRep.GetTracksOfAuthor(author);
                    TrackList.DataBind();

                    if (TrackListDataPager.TotalRowCount <= TrackListDataPager.MaximumRows)
                        TrackListDataPager.Visible = false;

                    if (TrackListDataPager.TotalRowCount == 0)
                        AboutNullMess.Text = "список пуст!";
                }
                else
                    LogName.Text = "dfgd - это косяк, Джованни2!";
            }
            else
            {
                PlaceHolder1.Controls.Clear();
                Label no = new Label();
                no.ID = "noLabel";
                no.Text = "Пользователя с такой страницой не существует!";
                PlaceHolder1.Controls.Add(no);

            }
        }
    }

    protected void AddToFav_Click(object sender, EventArgs e)
    {
        BLL.Favorites favorite = new BLL.Favorites();
        favorite.addFavorite(new Util.Favorite() { UserID = HttpContext.Current.User.Identity.Name, FavoriteURI = "PPage.aspx?login=" + Request["login"], FavoriteName = Request["login"] });
        //fav.addFavorite();

    }
}